package com.sunfeng.jksj.p25;

import com.sunfeng.TimeUtils;
import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.*;

/**
 * @Author : 孙峰
 * @Description:  这个方式的缺点是  如果线程1  执行的比较慢 后面所有的线程都会等待线程1 执行完毕之后在执行
 *              我们在Demo2 中进行服务的优化
 * @Date : 2022/3/3  8:47
 */

@Slf4j(topic = "c.Demo01")
public class Demo01 {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        ExecutorService executorService = Executors.newFixedThreadPool(3);

        Future<Integer> f1 = executorService.submit(() -> {

            TimeUtils.sleep(4);

            return 100;
        });

        Future<Integer> f2 = executorService.submit(() -> {
            TimeUtils.sleep(3);
            return 10;
        });

        Future<Integer> f3 = executorService.submit(() -> {
            TimeUtils.sleep(3);
            return 15;
        });

        // 获取电商S1报价并保存
        Integer integer = f1.get();
        log.info("价格为：" + integer);
        // 获取电商S2报价并保存
        Integer integer2 = f2.get();
        log.info("价格为：" + integer2);
        // 获取电商S3报价并保存
        Integer integer3 = f3.get();
        log.info("价格为：" + integer3);
        executorService.shutdown();
    }
}
